home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / html / Map.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  3.8 KB  |  158 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.util.StringTokenizer;
  4. import java.util.Vector;
  5. import javax.swing.text.AttributeSet;
  6. import javax.swing.text.html.HTML.Attribute;
  7.  
  8. class Map {
  9.    private String name;
  10.    private Vector areaAttributes;
  11.    private Vector areas;
  12.  
  13.    public Map() {
  14.    }
  15.  
  16.    public Map(String var1) {
  17.       this.name = var1;
  18.    }
  19.  
  20.    public void addArea(AttributeSet var1) {
  21.       if (var1 != null) {
  22.          if (this.areaAttributes == null) {
  23.             this.areaAttributes = new Vector(2);
  24.          }
  25.  
  26.          this.areaAttributes.addElement(var1.copyAttributes());
  27.       }
  28.    }
  29.  
  30.    protected RegionContainment createRegionContainment(AttributeSet var1) {
  31.       Object var2 = var1.getAttribute(Attribute.SHAPE);
  32.       if (var2 == null) {
  33.          var2 = "rect";
  34.       }
  35.  
  36.       if (var2 instanceof String) {
  37.          String var3 = ((String)var2).toLowerCase();
  38.          Object var4 = null;
  39.  
  40.          try {
  41.             if (var3.equals("rect")) {
  42.                var4 = new RectangleRegionContainment(var1);
  43.             } else if (var3.equals("circle")) {
  44.                var4 = new CircleRegionContainment(var1);
  45.             } else if (var3.equals("poly")) {
  46.                var4 = new PolygonRegionContainment(var1);
  47.             } else if (var3.equals("default")) {
  48.                var4 = javax.swing.text.html.Map.DefaultRegionContainment.sharedInstance();
  49.             }
  50.          } catch (RuntimeException var5) {
  51.             var4 = null;
  52.          }
  53.  
  54.          return (RegionContainment)var4;
  55.       } else {
  56.          return null;
  57.       }
  58.    }
  59.  
  60.    protected static int[] extractCoords(Object var0) {
  61.       if (var0 != null && var0 instanceof String) {
  62.          StringTokenizer var1 = new StringTokenizer((String)var0, ", \t\n\r");
  63.          int[] var2 = null;
  64.          int var3 = 0;
  65.  
  66.          while(var1.hasMoreElements()) {
  67.             String var4 = var1.nextToken();
  68.             byte var5;
  69.             if (var4.endsWith("%")) {
  70.                var5 = -1;
  71.                var4 = var4.substring(0, var4.length() - 1);
  72.             } else {
  73.                var5 = 1;
  74.             }
  75.  
  76.             try {
  77.                int var6 = Integer.parseInt(var4);
  78.                if (var2 == null) {
  79.                   var2 = new int[4];
  80.                } else if (var3 == var2.length) {
  81.                   int[] var7 = new int[var2.length * 2];
  82.                   System.arraycopy(var2, 0, var7, 0, var2.length);
  83.                   var2 = var7;
  84.                }
  85.  
  86.                var2[var3++] = var6 * var5;
  87.             } catch (NumberFormatException var8) {
  88.                return null;
  89.             }
  90.          }
  91.  
  92.          if (var3 > 0 && var3 != var2.length) {
  93.             int[] var9 = new int[var3];
  94.             System.arraycopy(var2, 0, var9, 0, var3);
  95.             var2 = var9;
  96.          }
  97.  
  98.          return var2;
  99.       } else {
  100.          return null;
  101.       }
  102.    }
  103.  
  104.    public AttributeSet getArea(int var1, int var2, int var3, int var4) {
  105.       int var5 = this.areaAttributes != null ? this.areaAttributes.size() : 0;
  106.       if (var5 > 0) {
  107.          int var6 = this.areas != null ? this.areas.size() : 0;
  108.          if (this.areas == null) {
  109.             this.areas = new Vector(var5);
  110.          }
  111.  
  112.          for(int var7 = 0; var7 < var5; ++var7) {
  113.             if (var7 >= var6) {
  114.                this.areas.addElement(this.createRegionContainment((AttributeSet)this.areaAttributes.elementAt(var7)));
  115.             }
  116.  
  117.             RegionContainment var8 = (RegionContainment)this.areas.elementAt(var7);
  118.             if (var8 != null && var8.contains(var1, var2, var3, var4)) {
  119.                return (AttributeSet)this.areaAttributes.elementAt(var7);
  120.             }
  121.          }
  122.       }
  123.  
  124.       return null;
  125.    }
  126.  
  127.    public AttributeSet[] getAreas() {
  128.       int var1 = this.areaAttributes != null ? this.areaAttributes.size() : 0;
  129.       if (var1 != 0) {
  130.          AttributeSet[] var2 = new AttributeSet[var1];
  131.          this.areaAttributes.copyInto(var2);
  132.          return var2;
  133.       } else {
  134.          return null;
  135.       }
  136.    }
  137.  
  138.    public String getName() {
  139.       return this.name;
  140.    }
  141.  
  142.    public void removeArea(AttributeSet var1) {
  143.       if (var1 != null && this.areaAttributes != null) {
  144.          int var2 = this.areas != null ? this.areas.size() : 0;
  145.  
  146.          for(int var3 = this.areaAttributes.size() - 1; var3 >= 0; --var3) {
  147.             if (((AttributeSet)this.areaAttributes.elementAt(var3)).isEqual(var1)) {
  148.                this.areaAttributes.removeElementAt(var3);
  149.                if (var3 < var2) {
  150.                   this.areas.removeElementAt(var3);
  151.                }
  152.             }
  153.          }
  154.       }
  155.  
  156.    }
  157. }
  158.